Health Cloud Medications System API - Implementation Template
Field mapping
Medication
FHIR Field Name | Salesforce Object | Salesforce Field Name | Notes |
---|---|---|---|
Identifier.use | Identifier | IdUsageType | The identifier information for a medication is represented as Identifier records that reference the medication record using their Identifier.ParentRecordId field. |
Identifier.system | Identifier | SourceSystem | |
Identifier.value | Identifier | IdValue | |
Identifier.type.coding | Identifier | IdTypeId | |
code.coding | Medication | MedicationCodeId | |
code.text | Medication | CodeSetBundle -> Name | |
status | Medication | Status | While FHIR defines medication.status as a code set bundle, the Salesforce implementation of Medication.Status is picklist. |
manufacturer | Medication | ManufacturerId | |
form.coding | Medication | MedicationFormId | |
amount.numerator.value | Medication | QuantityNumerator | Salesforce doesn’t support a native quantity data type, the medication.amount field is flattened into a set of numerator, denominator, and unit fields. |
amount.numerator.unit | UnitOfMeasure | UnitCode | |
amount.denominator.value | Medication | QuantityDenominator | |
amount.denominator.unit | UnitOfMeasure | UnitCode |
MedicationStatement
FHIR Field Name | Salesforce Object | Salesforce Field Name | Notes |
---|---|---|---|
Identifier.use | Identifier | IdUsageType | The identifier information for a medication statement is represented as Identifier records that reference the MedicationStatement record using their Identifier.ParentRecordId field. |
Identifier.system | Identifier | SourceSystem | |
Identifier.value | Identifier | IdValue | |
Identifier.type.coding | Identifier | IdTypeId | |
status | MedicationStatement | Status | While FHIR defines MedicationStatement.status as a code set bundle, the Salesforce implementation of MedicationStatement.Status is picklist. |
medicationCodeableConcept | MedicationStatement | MedicationCodeId | While the individual fields MedicationStatement.MedicationCodeId and MedicationStatement.MedicationId are zero-to-one references, the set {MedicationStatement.MedicationCodeId, MedicationStatement.MedicationId} is a one-to-one resource. |
basedOn | MedicationStatement | MedicationRequestId | While FHIR defines medicationStatement.basedOn as a zero-to-many resource, the Salesforce implementation of MedicationStatement.MedicationRequestId is zero-to-one. |
context | MedicationStatement | ClinicalEncounterId | |
subject | MedicationStatement | PatientId | The Salesforce implementation doesn’t support references to care plan or service request records. |
effectiveDateTime | MedicationStatement | StartDateTime | |
effectivePeriod | MedicationStatement | StartDateTime EndDateTime | Because Salesforce doesn’t support a native period data type, the implementation of medicationStatement.effective.effectivePeriod is flattened into a set of start and end dates. |
dateAsserted | MedicationStatement | AssertionDateTime |
MedicationRequest
FHIR Field Name | Salesforce Object | Salesforce Field Name | Notes |
---|---|---|---|
Identifier.use | Identifier | IdUsageType | The identifier information for a medication request is represented as Identifier records that reference the MedicationRequest record using their Identifier.ParentRecordId field. |
Identifier.system | Identifier | SourceSystem | |
Identifier.value | Identifier | IdValue | |
Identifier.type.coding | Identifier | IdTypeId | |
status | MedicationRequest | Status | While FHIR defines MedicationRequest.status as a code set bundle, the Salesforce implementation of MedicationRequest.Status is picklist. |
statusReason | MedicationRequest | StatusReasonCodeId | |
intent | MedicationRequest | Type | While FHIR defines MedicationRequest.intent as a code set bundle, the Salesforce implementation of MedicationRequest.Type is picklist. |
medicationCodeableConcept | MedicationRequest | MedicationCodeId | |
medicationReference | MedicationRequest | MedicationId | |
subject | MedicationRequest | PatientId | |
authoredOn | MedicationRequest | PrescribedDate | |
reasonCode | MedicationRequest | ReasonCodeId | |
reasonReference | MedicationRequest | ReasonReferenceId | |
dosageInstruction | PatientMedicationDosage | The dosage information for a medication request is represented as PatientMedicationDosage records that reference the MedicationRequest record using theirPatientMedicationDosage.ParentRecordId field. | |
dosageInstruction.sequence | PatientMedicationDosage | Sequence | |
dosageInstruction.text | PatientMedicationDosage | Comments | |
dosageInstruction.additionalInstruction.text | PatientMedicationDosage | AdditionalInstruction | |
dosageInstruction.patientInstruction | PatientMedicationDosage | PatientInstruction | |
dosageInstruction.asNeededBoolean | PatientMedicationDosage | IsAsNeeded | |
dosageInstruction.site | PatientMedicationDosage | SiteId | |
dosageInstruction.route | PatientMedicationDosage | RouteId | |
dosageInstruction.method | PatientMedicationDosage | MethodId | |
dosageInstruction.doseAndRate.type.coding.code | PatientMedicationDosage | DosageDefinitionType | |
If DosageQuantityType == 'Dose Range' | |||
dosageInstruction.doseAndRate.doseRange.low.value | PatientMedicationDosage | DosageQuantityNumerator | |
dosageInstruction.doseAndRate.doseRange.low.unit | unitOfMeasure | UnitCode | |
dosageInstruction.doseAndRate.doseRange.low.code | unitOfMeasure | UnitCode | |
dosageInstruction.doseAndRate.doseRange.high.value | PatientMedicationDosage | DosageQuantityDenominator | |
dosageInstruction.doseAndRate.doseRange.high.unit | unitOfMeasure | UnitCode | |
dosageInstruction.doseAndRate.doseRange.high.code | unitOfMeasure | UnitCode | |
else | |||
dosageInstruction.doseAndRate.doseQuantity.value | PatientMedicationDosage | DosageQuantityNumerator | |
dosageInstruction.doseAndRate.doseQuantity.unit | unitOfMeasure | UnitCode | |
dosageInstruction.doseAndRate.doseQuantity.code | unitOfMeasure | UnitCode | |
If DosageRateType == 'Frequency Range' | |||
dosageInstruction.doseAndRate.rateRange.low.value | PatientMedicationDosage | DosageRateNumerator | |
dosageInstruction.doseAndRate.rateRange.low.unit | unitOfMeasure | UnitCode | |
dosageInstruction.doseAndRate.rateRange.low.code | unitOfMeasure | UnitCode | |
dosageInstruction.doseAndRate.rateRange.high.value | PatientMedicationDosage | DosageRateDenominator | |
dosageInstruction.doseAndRate.rateRange.high.unit | unitOfMeasure | UnitCode | |
dosageInstruction.doseAndRate.rateRange.high.code | unitOfMeasure | UnitCode | |
else if DosageRateType == 'Frequency Ratio') | |||
dosageInstruction.doseAndRate.rateRatio.numerator.value | PatientMedicationDosage | DosageRateNumerator | |
dosageInstruction.doseAndRate.rateRatio.numerator.code | unitOfMeasure | UnitCode | |
dosageInstruction.doseAndRate.rateRatio.denominator.value | PatientMedicationDosage | DosageRateDenominator | |
dosageInstruction.doseAndRate.rateRatio.denominator.value | unitOfMeasure | UnitCode | |
else | |||
dosageInstruction.doseAndRate.rateQuantity.value | PatientMedicationDosage | DosageRateNumerator | |
dosageInstruction.doseAndRate.rateQuantity.unit | unitOfMeasure | UnitCode | |
dosageInstruction.doseAndRate.rateQuantity.code | unitOfMeasure | UnitCode |
Immunization
FHIR Field Name | Salesforce Object | Salesforce Field Name | Notes |
---|---|---|---|
Identifier.use | Identifier | IdUsageType | The identifier information for an immunization is represented as Identifier records that reference the PatientImmunization record using their Identifier.ParentRecordId field. |
Identifier.system | Identifier | SourceSystem | |
Identifier.value | Identifier | IdValue | |
Identifier.type.coding | Identifier | IdTypeId | |
status | Immunization | Status | While FHIR defines immunization.status as a code set bundle, the Salesforce implementation of PatientImmunization.Status is picklist. |
statusReason | Immunization | StatusReasonCodeId | |
vaccineCode | Immunization | VaccineCodeId | |
patient | Immunization | PatientId | |
encounter | Immunization | ClinicalEncounterId | |
occurrenceDateTime | Immunization | VaccinationDate | |
occurenceString | Immunization | VaccinationPeriod | |
recorded | Immunization | RecordCreationDateTime | |
primarySource | Immunization | IsRecordedByVaccinator | |
reportOrigin | Immunization | InformationSourceId | |
location | Immunization | FacilityId | |
manufacturer | Immunization | Manufacturer | |
lotNumber | Immunization | LotNumber | |
expirationDate | Immunization | ExpirationDate | |
site | Immunization | SiteId | |
route | Immunization | RouteId | |
doseQuantity.value | Immunization | Dose | The Salesforce equivalent of immunization.dose is represented used the fields PatientImmunization.Dose for the quantity and PatientImmunization.DoseUnitId for the unit. |
doseQuantity.code | unitOfMeasure | UnitCode | |
performer.function | CarePerformer | ParentsRoleId | The performer information for an immunization is represented as CarePerformer records that reference the PatientImmunization record using their CarePerformer.ParentRecordId field. |
performer.actor | CarePerformer | PersonId | |
reasonCode | Immunization | ReasonCodeId | |
isSubpotent | Immunization | IsSubpotent | |
subpotentReason | Immunization | SubpotencyReasonCodeId |